package com.boxuegu.service;

import com.boxuegu.dao.UserDao;
import com.boxuegu.dao.AdminDao;
import com.boxuegu.domain.User;
import com.boxuegu.domain.Fruit;
import com.boxuegu.domain.Admin;

import java.io.IOException;
import java.util.ArrayList;

public class AdminService {
    // 定义userDao以便使用
    private UserDao userDao = new UserDao();
    // 定义adminDao以便使用
    private AdminDao adminDao = new AdminDao();
    private ArrayList<Admin> admins;
    //定义水果对象集合
    private ArrayList<Fruit> fruits;
    //定义用户对象集合
    private ArrayList<User> users;

    //获取所有用户信息
    public ArrayList<User> findAllUser() throws IOException, ClassNotFoundException {
        return userDao.findAllUser();
    }

    // 正确
    //判断用户id是否存在
    public boolean isExist(String id) throws IOException, ClassNotFoundException {
        // 先假设id不存在
        boolean result = false;
        // 获取全部用户对象
        users = userDao.findAllUser();
        if (users != null) {
            for (User user : users) {
                // 遍历获取与id匹配的用户对象
                if (user.getId().equals(id)) {
                    // 修改结果为存在
                    result = true;
                    break;
                }
            }
        }
        return result;
    }

    //正确
    // 根据用户ID修改用户余额
    public boolean changeMoney(String id, double money) throws IOException, ClassNotFoundException {
        return adminDao.changeMoney(id, money);
    }

    //正确
    //根据用户ID充值用户余额
    public boolean addMoney(String id, double money) throws IOException, ClassNotFoundException {
        return adminDao.addMoney(id, money);

    }

    //正确
    // 根据ID修改用户名称
    public boolean changeName(String id, String newName) throws IOException, ClassNotFoundException {
        return adminDao.changeName(id, newName);
    }

    //正确
    // 根据ID修改用户密码
    public boolean changePassword(String id, String newPassword) throws IOException, ClassNotFoundException {
        return adminDao.changePassword(id, newPassword);
    }

    //正确
    // 添加用户
    public boolean addUser(User user) throws IOException, ClassNotFoundException {
        return adminDao.addUser(user);
    }

    //正确
    // 根据ID删除用户
    public boolean deleteUser(String id) throws IOException, ClassNotFoundException {
        return adminDao.deleteUser(id);
    }

    //根据id修改用户全部信息
    public boolean changeUser(User user) throws IOException, ClassNotFoundException {
        return adminDao.changeUser(user);
    }

    //正确
    // 判断管理员用户登录信息是否正确
    public boolean checkPassword(String id, String password) throws IOException, ClassNotFoundException {
        admins = adminDao.findAllAdmin();
        // 先假设登录失败
        boolean flag = false;
        // 遍历集合
        if (admins != null) {
            for (Admin admin : admins) {
                // 判断接收的id密码是否与集合中的任意一个对象的id密码匹配
                if (admin.getId().equals(id) && admin.getPassword().equals(password)) {
                    //匹配则登陆成功结束循环
                    flag = true;
                    break;
                }
            }
        }
        return flag;
    }

    //正确
    // 根据ID获取水果名字
    public String getFruitName(String id) throws IOException {
        fruits = userDao.findAllFruit();
        // 初始化姓名变量
        String name = null;
        //判断集合不为空
        if (fruits != null) {
            for (Fruit fruit : fruits) {
                // 遍历获取与id匹配的水果对象
                if (fruit.getId().equals(id)) {
                    // 获取匹配的水果对象的名字结束循环
                    name = fruit.getName();
                    break;
                }
            }
        }
        // 返回水果名字
        return name;
    }

    //正确
    //判断水果id是否存在
    public boolean isExistFruit(String id) throws IOException, ClassNotFoundException {
        // 先假设id不存在
        boolean result = false;
        // 获取全部水果对象
        fruits = userDao.findAllFruit();
        if (fruits != null) {
            for (Fruit fruit : fruits) {
                // 遍历获取与id匹配的水果对象
                if (fruit.getId().equals(id)) {
                    // 修改结果为存在
                    result = true;
                    break;
                }
            }
        }
        return result;
    }

    //正确
    // 添加水果
    public boolean addFruit(Fruit fruit) throws IOException, ClassNotFoundException {
        return adminDao.addFruit(fruit);
    }

    //正确
    // 根据ID删除水果
    public boolean deleteFruit(String id) throws IOException, ClassNotFoundException {
        return adminDao.deleteFruit(id);
    }

    //正确
    // 根据ID和传入的money数字修改水果金额
    public boolean changeFruitMoney(String id, double money) throws IOException {
        return adminDao.changeFruitMoney(id, money);
    }

    //正确
    // 根据水果ID和acount参数更改水果库存数量
    public boolean changeFruitAmount(String id, int amount) throws IOException {
        return adminDao.changeFruitAmount(id, amount);

    }

    // 根据ID修改全部水果信息
    public boolean changeFruit(Fruit fruit) throws IOException {
        return adminDao.changeFruit(fruit);
    }

}
